#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QMediaPlayer>
#include <QHBoxLayout> //水平布局
#include <QVBoxLayout> //垂直布局
#include <QVideoWidget> //显示视频
#include <QMediaPlayer> //播放声音
#include <QPushButton> //按钮
#include <QStyle> //设置图标
#include <QFileDialog> //选择文件/文件夹
#include<QStandardPaths>
#include<QMessageBox>
#include <QVideoSink>
#include<QAudioOutput>

QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

public slots:
    void chooseVideo();
     void togglePlayback();  // 添加这行

private:
    Ui::Widget *ui;//管理通过 Qt Designer 设计的界面组件
    QMediaPlayer *mediaPlayer;
    /*作用：核心媒体播放控制
功能：
控制播放/暂停/停止等操作
管理媒体源（本地文件/网络流）
提供播放状态信号（如 positionChanged、durationChanged）
*/
    QAudioOutput *audioOutput;//音频输出控制（Qt6 新增）

    QVideoWidget *videoWidget;//视频画面渲染窗口
    QVBoxLayout *vbox;//布局管理器
    QPushButton *chooseBtn,*playBtn;



    bool isPlaying = false;

};
#endif // WIDGET_H


// graph TD
//             ui[Ui::Widget] -->|包含| playBtn
//               ui -->|包含| videoWidget
//               mediaPlayer -->|视频输出| videoWidget
//               mediaPlayer -->|音频输出| audioOutput
//               vbox -->|管理布局| videoWidget
//               vbox -->|管理布局| playBtn
//               chooseBtn -->|点击| mediaPlayer[设置媒体源]
//           playBtn -->|点击| mediaPlayer[播放/暂停]
